package com.supersit.greensproject.DB;

import org.xutils.DbManager;
import org.xutils.db.table.TableEntity;
import org.xutils.x;

/**
 * Created by Administrator on 2016/8/24 0024.
 */
public class XUtilsDbManager {
    protected static DbManager db = null;

    public static DbManager getInstance() {
        if (null == db) {
            synchronized (XUtilsDbManager.class) {
                if (db == null) {
                    db = initDb();
                }
            }
        }
        return db;
    }

    /**
     * 初始化本地数据
     *
     * @return
     */
    protected static DbManager initDb() {
        //本地数据的初始化
        DbManager.DaoConfig daoConfig = new DbManager.DaoConfig()
                .setDbName("greens.db") //设置数据库名
                .setDbVersion(1) //设置数据库版本,每次启动应用时将会检查该版本号,
                //发现数据库版本低于这里设置的值将进行数据库升级并触发DbUpgradeListener
                .setAllowTransaction(true)//设置是否开启事务,默认为false关闭事务
                .setTableCreateListener(new DbManager.TableCreateListener() {
                    @Override
                    public void onTableCreated(DbManager db, TableEntity<?> table) {

                    }
                })//设置数据库创建时的Listener
                .setDbUpgradeListener(new DbManager.DbUpgradeListener() {
                    @Override
                    public void onUpgrade(DbManager db, int oldVersion, int newVersion) {
                        //balabala...
                    }
                });//设置数据库升级时的Listener,这里可以执行相关数据库表的相关修改,比如alter语句增加字段等
        //.setDbDir(null);//设置数据库.db文件存放的目录,默认为包名下databases目录下
        DbManager manager = x.getDb(daoConfig);
        return manager;
    }
}
